/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.losalpes.marketplace.pirfb.beans;

import co.com.losalpes.marketplace.pirfb.bos.ComercioBO;
import co.com.losalpes.marketplace.pirfb.bos.FabricanteBO;
import co.com.losalpes.marketplace.pirfb.bos.IntencionBO;
import co.com.losalpes.marketplace.pirfb.bos.SolicitudBO;
import co.com.losalpes.marketplace.pirfb.entities.persistence.Persistence;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.Query;

/**
 *
 * @author leon
 */
public class RFBBeanServer {

    public String crearIntencion(IntencionBO intencion) {
        return "INT" + System.currentTimeMillis();
    }

    /**
     * - Recibe una intencion de compra o de venta busca el match si lo encuentra
     * crea la solicitud y cambia los estados de las intenciones si no devuelve
     * un null
     * 
     * - Se debe verificar que ninguna de las intenciones se encuetre en estado RECHAZADA
     * en la tabla de solicitudes
     * 
     * @param intencionBO
     * @return
     */
    public SolicitudBO crearSolicitud(IntencionBO intencionBO) {
        SolicitudBO s = new SolicitudBO();
        s.setNumero("SOL" + System.currentTimeMillis());
        return s;
    }

    
    
    /**
     * Permite obtener un listado de intenciones a partir del nit y del tipo si
     * son de compra o de venta
     *
     * @param nit del interesado
     * @param tipo de la intencion compra o venta
     * @param estado de la intencion: abierta, vencida, exitosa, bloqueada
     * @return
     */
    public List<IntencionBO> obtenerIntenciones(String nit, String tipo, String estado) {
        return null;
    }

    /**
     * Busca la solicitud relacionada a una intencion
     *
     * @param intencionBO
     * @return
     */
    public SolicitudBO traerSolicitud(IntencionBO intencionBO) {
        return null;
    }

    /**
     * Permite a un fabricante o comercio confirmar una solicitudBO debe cambiar
     * el estado a la intencion!
     *
     * @param solicitudBO
     * @return
     */
    public String confirmarSolicitud(SolicitudBO solicitudBO) {
        return "";
    }

    /**
     * Permite actualizar el estado de una intencion
     *
     * @param id
     * @param estado
     * @return
     */
    public String actualizarEstadoIntencion(String id, String estado) {
        return "";
    }

    /**
     * Se cambia el estado de la intención y se habilita para búsqueda si la
     * fecha máxima es inferior a la actual
     *
     * @param solicitudBO
     * @return
     */
    public String rechazarSolicitud(SolicitudBO solicitudBO) {

        return "";
    }

    private Persistence getEm() {
        Persistence persistence = new Persistence();
        return persistence;
    }
}
